//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __ELASTOS_GDIVGA_H__
#define __ELASTOS_GDIVGA_H__

typedef struct
{
    int nIndex;
    int nRed;
    int nGreen;
    int nBlue;
} *PSTPACKPALETTE;

class GDIVideo : public CDeviceDriver
{
public:
    CARAPI Read(
        /* [in] */  Int64 u64Offset,
        /* [in] */  Int32 bytesToRead,
        /* [out] */ MemoryBuf * pBuffer,
        /* [out] */ IEvent * * ppCompletionEvent);

    CARAPI Write(
        /* [in] */  Int64 u64Offset,
        /* [in] */ const  MemoryBuf & buffer,
        /* [out] */ Int32 * pBytesWritten,
        /* [out] */ IEvent * * ppCompletionEvent);

    CARAPI Control(
        /* [in] */  Handle32 nControlCode,
        /* [in] */ const  MemoryBuf & inBuffer,
        /* [out] */ MemoryBuf * pOutBuffer,
        /* [out] */ IEvent * * ppCompletionEvent);

    virtual void Dispose() {}

public:
};

EXTERN IDeviceDriver * CDECL CreateGDIVGA(uint_t uDeviceNo, void *pvParameter);

#endif // __ELASTOS_GDIVGA_H__
